a11y: Sanitize the AT-SPI object path further
authorEmmanuele Bassi <ebassi@gnome.org>
Tue, 12 Jan 2021 11:15:28 +0000 (11:15 +0000)
committerEmmanuele Bassi <ebassi@gnome.org>
Tue, 12 Jan 2021 11:15:28 +0000 (11:15 +0000)
When falling back to g_get_prgname(), we need to take into account that
the program name may be the full argv[0] path, which will end up messing
the DBus object path.

gtk/a11y/gtkatspiroot.c

index 48c9e60676724dfe9bb5372c03564bcbeb67d9dd..6aa1048841f2763c228c2a1b818bcb3f7aecec5c 100644 (file)
@@ -667,8 +667,16 @@ gtk_at_spi_root_constructed (GObject *gobject)
     {
       const char *program_name = g_get_prgname ();
 
+      char *base_name = NULL;
+      if (program_name == NULL || *program_name == 0)
+        base_name = g_strdup ("unknown");
+      else if (*program_name == '/')
+        base_name = g_path_get_basename (program_name);
+      else
+        base_name = g_strdup (program_name);
+
       self->base_path = g_strconcat ("/org/gtk/application/",
-                                     program_name != NULL ? program_name : "unknown",
+                                     base_name,
                                      "/a11y",
                                      NULL);